|
|
|
|||
Szövegfájlból (szoveg.txt) indexfájl (index.txt) létrehozása kicsit bonyolultabban, mint Java-ban, mivel itt figyelembe vesszük az írásjeleket és azok nem kerülnek be az indexfájlba (Indexelo.pas) program Indexelo; uses crt; var i,i1,i2j,r,n:integer; f,g:text; s,s1:string; sorok:array [1..50] of string; szavak:array [1..100] of string; procedure cserelgetes (i,j:integer); var x:string; begin x:=szavak[i]; szavak[i]:=szavak[j]; szavak[j]:=x; end; procedure rendezes; {a szavak n elemu tomb elrendezese} var i,j:integer; begin for i:=1 to r-1 do for j:=i+1 to r do if (szavak[j]<szavak[i]) then cserelgetes(j,i); end; function postit(s:string):integer; var i,p:integer; begin p:=0; for i:=1 to length(s) do case s[i] of 'a'..'z','A'..'Z':continue; #128..#255:continue; else begin p:=i; break; end; end; postit:=p; end; BEGIN clrscr; assign(f,'szoveg.txt');reset(f); assign(g,'index.txt');rewrite(g); i:=0; while (not eof(f)) do begin if (i=51) then break; readln(f,s); inc(i); sorok[i]:=s; end; close(f); writeln('a szoveg.txt fajl ',i,' sorbol all'); r:=i; {sorok szama} j:=0; for i:=1 to r do begin s:=sorok[i]+' xxx'; i2:=postit(s); while (i2>0) do begin if ((i2>1) and (j<1000)) then begin inc(j); str(i,s1); szavak[j]:=copy(s,1,i2-1)+' '+s1; end; s:=copy(s,i2+1,255); i2:=postit(s); end; end; writeln('az index.txt fajl ',j,' szobol all'); r:=j; rendezes; for i:=1 to r do writeln(g,szavak[i]); close(g); readkey; END. ![]() |
||||